Genetics of Evolution - Mechanisms
Preliminaries
If you are not already familiar with the structure of these exercises, read the Introduction first.
Reminder: Save your work regularly.
If you are using a Mac, we recommend that you use either Chrome or Firefox to complete these exercises. Some of the default settings in Safari prevent these exercises from running.
Contact information
If you have questions about these exercises, please contact Dr. Kevin Middleton (middletonk@missouri.edu) or drop by Tucker 224.
Learning objectives
The learning objectives for this exercise are:
- Describe and identify the mechanisms by which variation arises and is fixed (or lost) in a population over time.
- Explain how the processes of drift, natural selection, migration, and mutation can affect the elimination, maintenance or increase in frequency of alleles in a population.
Exploring the assumptions of Hardy-Weinberg Equilibrium
Recall that the requirements for a population to be in Hardy-Weinberg Equilibrium are:
- Infinite population size
- All mating is random
- No migration
- No selection
- No mutation
In reality, these condition are never strictly met. For example, it isn’t possible to have an truly infinite population size. For each of the assumptions above, there is a mechanism which can cause the deviation from the predictions of Hardy-Weinberg Equilibrium: evolution:
- Small population sizes
- Non-random mating (e.g., inbreeding, sexual selection)
- Addition of new alleles via migration (gene flow)
- Differential survival of individuals with certain combination of alleles (selection)
- Addition of new alleles via mutation
Because evolution is the change in allele frequencies over time, we will be tracking allele frequencies in simulated populations across many generations. Simulations like the ones in this exercise are one of the primary ways that evolutionary biologists make predictions about the course of evolution. These predictions are often then testing experimentally in the laboratory or in natural populations in nature.
Simulating evolution
The figure below shows a very simple but very powerful model of the process of evolution. We provide the simulation a set of parameters, and these parameters are fed into the equations that govern population biology. This is called a stochastic simulation because the randomness that in and inherent part of nature is modeled as part of the process.
Given an initial allele frequency (in this case 0.5), 20 independent populations are allowed to evolve for 100 generations. Among the possible parameters we can set for these populations are:
- Number of generations (
n_Generations): 100 - Number of individuals in the population (
Population_Size): 100 - Initial allele frequency (
Initital_Frequency): 0.5 - Fitness of the AA genotype (
Fitness_AA): 1 - Fitness of the AB genotype (
Fitness_AB): 1 - Fitness of the BB genotype (
Fitness_BB): 1 - Rate of (
Migration): 0 - Rate of mutation from A to B (
Mutation_AB): 0 - Rate of mutation from B to A (
Mutation_BA): 0
In this first simulation, fitness is equal among the genotypes, and there is no migration or mutation.
There are a few things that we can note from just this one set of populations:
- We only need to plot the frequency of one allele (A), because the frequency of the B allele is just 1 - A.
- Evolution is occurring in the populations. We know this because the allele frequencies are changing across generations.
- In this case, evolution is occurring without migration or mutation, and with equal fitness across all genotypes.
- In some populations, the frequency goes up and in some it goes down.
- In one population, the allele is lost completely at about generation 80.
We will use this simulation framework to explore the effects of different factors on the process of evolution. There are many different combinations of each of these parameters, so we will only change one or two at a time, holding everything else constant.
Effect of Population Size
For this set of simulations, we will explore the role of population size in allele frequency change. Below the population size is set to 10. Run the simulation a few times and observe the patterns.
Now gradually increase the population size, rerunning the simulation a few times for each population size. Try to keep the population size under 100000 or the simulations will run very slowly.
What do you observe about allele frequencies the populations as you increase population size from 10 to 100, 500, 1000, …, etc.? How is a population size of 10 different from 100000?
What do you predict would happen to the allele frequencies if you kept increasing population size to infinity?
What do you predict would happen to the allele frequencies if you kept allowed the simulation to run for more generations at very small (~10-20), intermediate (~1000), and large (50000-100000) population sizes?
Run simulations using the code block below.
- Use one small, one intermediate, and one large population size.
- For each gradually increase the number of generations from 100 to 1000. Don’t go over 1000 generations or the simulation will run slowly.
Were your predictions accurate? If not, how did your predictions differ from what you found in the simulations?
What conclusions can you draw about the role of population size and time (number of generations) on the process of evolution?
Effect of Migration (gene flow)
Migration is the rate of emigration: percentage of individuals that move to a new population each generation. To begin, we will use 100 generations and a population size of 100.
- Gradually increase the
Migrationparameter from 0 by units of 0.01 until you get to 0.1. - Also feel free to change the
Initital_Frequencyif you want to see what effect that has.
Effect of Selection (differential fitness)
Effect of Mutation
Feedback
We would appreciate your anonymous feedback on this exercise. If you choose to, please fill out this optional 4-question survey to help us improve.